<?php

require_once '../db/Conexion.php';

//gestiona la accion solicitada 
function accion_controller() {
    $accion = FALSE;
    $pokerAsignacion_peticion = helper_data();
    $accion = $pokerAsignacion_peticion['accion'];
    if ($accion) {
        switch ($accion) {
            case 'save' :
                guardar($pokerAsignacion_peticion);
                break;
            case 'delete' :
                eliminar($pokerAsignacion_peticion['id']);
                break;
            case 'list' :
                listar();
                break;
            case 'edit' :
                editar($pokerAsignacion_peticion['id']);
                break;
        }
    } else {
        die("ERROR: No se recibieron los parametros correspondientes.");
    }
}

//OBTIENE LOS DATOS DE POST
function helper_data() {
    $pokerAsignacion = array();
    if (isset($_POST['accion']))
        $pokerAsignacion['accion'] = $_POST['accion'];
    if (isset($_POST['id']))
        $pokerAsignacion['id'] = $_POST['id'];
    if (isset($_POST['poker_torneo_id']))
        $pokerAsignacion['poker_torneo_id'] = $_POST['poker_torneo_id'];
    if (isset($_POST['tipo']))
        $pokerAsignacion['tipo'] = $_POST['tipo'];
    if (isset($_POST['promo']))
        $pokerAsignacion['promo'] = $_POST['promo'];
    if (isset($_POST['monto']))
        $pokerAsignacion['monto'] = $_POST['monto'];
    if (isset($_POST['puntos']))
        $pokerAsignacion['puntos'] = $_POST['puntos'];

    //SET COMISIONES (PORCENTUAL O FIJO)
    $comisionPorcentual = 0;
    $comisionFija = 0;
    $formaComision = "PORC";

    if (isset($_POST['fComision']))
        $formaComision = $_POST['fComision'];
    if (isset($_POST['comision']))
        $comisionPorcentual = $_POST['comision'];

    if ($formaComision === "FIJA") {
        $comisionFija = $comisionPorcentual;
        $comisionPorcentual = 0;
    }
    $pokerAsignacion['comision_porcentual'] = $comisionPorcentual;
    $pokerAsignacion['comision_fija'] = $comisionFija;
    return $pokerAsignacion;
}

//LISTADO
function listar() {
    $pokerAsignaciones = consultar("SELECT * FROM poker_asignaciones ORDER BY id ASC");
    require_once '../view/pokerAsignacion/ListPokerAsignaciones.php';
}

function listarByTorneoId($torneo_id) {
    $query = "SELECT * FROM poker_torneos WHERE id = $torneo_id";
    $pokerTorneo = consultar($query);
    $pokerAsignaciones = consultar("SELECT * FROM poker_asignaciones WHERE poker_torneo_id = $torneo_id ORDER BY id ASC");
    require_once '../view/pokerAsignacion/ListPokerAsignaciones.php';
}

//GUARDAR
function guardar($pokerAsignacion_peticion) {
    if (!$pokerAsignacion_peticion['id']) {
        $query = "INSERT INTO poker_asignaciones ( poker_torneo_id, tipo, monto, comision_porcentual, comision_fija,puntos,promo) VALUES
                        (  " . $pokerAsignacion_peticion['poker_torneo_id'] . ",
                           '" . $pokerAsignacion_peticion['tipo'] . "',
                           '" . $pokerAsignacion_peticion['monto'] . "',
                           '" . $pokerAsignacion_peticion['comision_porcentual'] . "', 
                           '" . $pokerAsignacion_peticion['comision_fija'] . "', 
                           '" . $pokerAsignacion_peticion['puntos'] . "',    
                           '" . $pokerAsignacion_peticion['promo'] . "');";
    } else {
        $query = "UPDATE poker_asignaciones 
                        SET poker_torneo_id=" . $pokerAsignacion_peticion['poker_torneo_id'] . ",
                            tipo='" . $pokerAsignacion_peticion['tipo'] . "',
                            monto='" . $pokerAsignacion_peticion['monto'] . "', 
                            comision_porcentual='" . $pokerAsignacion_peticion['comision_porcentual'] . "', 
                            comision_fija='" . $pokerAsignacion_peticion['comision_fija'] . "', 
                            puntos='" . $pokerAsignacion_peticion['puntos'] . "',
                            promo='" . $pokerAsignacion_peticion['promo'] . "'
                        WHERE id=" . $pokerAsignacion_peticion['id'] . " LIMIT 1;";
    }
    if (ejecutar($query)) {
        listarByTorneoId($pokerAsignacion_peticion['poker_torneo_id']);
    } else {
        die("Error: No se pudo Guardar el Registro!");
    }
}

//ELIMINAR
function eliminar($id) {
    $query = "Select * from poker_asignaciones as e where e.id=" . $id;
    $pokerAsignacionLocal = consultar($query);

    $query = "DELETE FROM poker_asignaciones WHERE id = $id LIMIT 1;";
    if (ejecutar($query)) {
        listarByTorneoId($pokerAsignacionLocal[0]['poker_torneo_id']);
    } else {
        echo "Error: No se puede Eliminar este registro";
    }
}

//EDITAR
function editar($id) {
    $query = "SELECT * FROM poker_asignaciones AS e WHERE e.id = $id";
    $pokerAsignacion = consultar($query);
    require_once '../view/pokerAsignacion/FormPokerAsignacion.php';
}

accion_controller();
?>
